文章目录
  1. 1. git 远程代码回滚master - Xinghf - CSDN博客

git 远程代码回滚master - Xinghf - CSDN博客

git 回滚

原# git 远程代码回滚master

2017年06月28日 19:17:23永远的晴天阅读数:23841

![](data:image/svg+xml,%3csvg xmlns=’http://www.w3.org/2000/svg‘ class=’icon js-evernote-checked’ title=’CSDN%e8%ae%a4%e8%af%81%e5%8e%9f%e5%88%9b’ aria-hidden=’true’ style=’width:53px%3b height: 18px%3b vertical-align: -4px%3b’ data-evernote-id=’870’%3e %3cpath d=’M520.522 586.803c-15.738 6.024-48.408 10.148-93.993 10.148-131.166 0-201.986-68.052-193.63-158.083C242.94 331.688 347.84 271.34 462.673 271.34c44.5 0 70.657 3.962 95.186 10.583l-7.869 72.23c-16.28-6.077-54.594-11.613-85.526-11.613-67.564 0-124.98 22.25-131.547 92.636-5.86 62.951 34.406 93.016 110.436 93.016 26.429 0 65.448-4.179 83.52-10.257l-6.35 68.867z’ fill=’%2349A314’ data-evernote-id=’2966’ class=’js-evernote-checked’%3e%3c/path%3e%3cpath d=’M366.78 473.925c39.616-60.943 119.281-94.047 204.428-94.047 44.5 0 70.658 3.961 95.187 10.582l-7.87 72.231c-16.28-6.078-54.593-11.613-85.526-11.613-52.315 0-98.551 13.296-119.77 51.989-30.607 0-52.532 0-86.45-29.142z m262.278 221.414c-15.738 6.024-48.407 10.149-93.992 10.149-95.675 0-159.224-36.197-183.373-90.683 53.346 11.668 100.18 5.319 123.298 5.319 18.614 11.125 44.5 16.606 76.898 16.606 26.428 0 65.447-4.179 83.519-10.257l-6.35 68.866z m808.977-214.685c37.88 13.133 116.84 26.212 180.714 26.212 68.866 0 107.18-18.072 110.219-46.128 2.821-25.615-25.344-29.088-103.11-46.563-107.397-24.963-175.938-63.602-169.209-125.36 7.815-71.85 109.08-126.01 264.341-126.01 75.704 0 149.13 5.047 187.171 16.877l-13.024 90.465c-24.746-8.14-119.227-19.428-183.155-19.428-64.851 0-98.389 19.32-100.722 40.539-2.93 26.808 30.77 28.057 114.994 49.33 113.963 27.46 163.89 66.098 157.378 125.956-7.706 70.55-98.768 130.407-280.567 130.407-75.704 0-140.989-13.133-176.914-26.212l11.884-90.085z m1068.543-295.328c414.066-74.076 449.83 58.99 437.022 176.698l-24.095 217.832h-131.438l21.979-198.621c4.775-43.795 34.406-129.322-108.537-126.12-49.492 1.086-74.022 7.598-74.022 7.598s-4.341 52.803-9.55 91.876l-24.91 225.267H2464.14l25.56-222.011 16.932-172.573z m-522.93-10.31a1354.265 1354.265 0 0 1 137.408-6.133c104.303 0 188.582 17.203 240.788 53.4 46.888 33.755 78.146 88.403 69.463 167.58-7.977 73.697-48.298 125.251-107.18 157.161-53.78 30.12-121.56 42.98-223.53 42.98-60.075 0-117.437-3.093-161.069-9.225l44.12-405.764z m86.179 325.066c10.04 1.9 23.28 3.745 49.384 3.745 104.249 0 177.837-48.625 185.217-117.003 10.745-98.822-54.485-133.391-164.433-132.794-14.218 0-34.026 0-44.5 1.845l-25.668 244.207z m-699.681 83.302c-23.607 8.086-72.611 13.567-140.99 13.567-196.776 0-302.979-90.79-290.443-210.778 15.032-142.943 172.356-223.368 344.604-223.368 66.75 0 106.04 5.264 142.834 14.11l-11.83 96.326c-24.422-8.14-81.837-15.521-128.291-15.521-101.319 0-187.443 29.685-197.265 123.515-8.846 83.898 51.555 124.057 165.627 124.057 39.67 0 98.225-5.59 125.25-13.676l-9.496 91.768z’ fill=’%2349A314’ data-evernote-id=’2967’ class=’js-evernote-checked’%3e%3c/path%3e%3cpath d=’M462.346 973.03l-12.97 3.799-13.024-3.799C194.64 902.481 69.444 736.53 69.444 485.158v-245.4c0-33.43 18.288-63.983 47.322-78.907L411.17 54.268a83.139 83.139 0 0 1 76.301 0l294.406 106.583c29.033 14.924 47.322 45.477 47.322 78.906v245.401c0 250.774-125.143 416.726-366.854 487.872z m258.317-486.406v-234.44l-271.341-89.38-271.342 89.38v234.44c0 198.35 87.915 322.516 271.287 381.668 183.427-59.695 271.396-183.86 271.396-381.668z’ fill=’%2349A314’ data-evernote-id=’2968’ class=’js-evernote-checked’%3e%3c/path%3e%3cpath d=’M1064.018 940.686c-59.532 0-109.893-42.329-109.893-124.383 0-80.75 52.26-126.987 111.793-126.987 30.553 0 55.136 14.652 71.2 31.584l-29.63 37.12c-11.614-11.072-23.879-18.886-40.593-18.886-30.282 0-55.137 28.002-55.137 75.216 0 48.19 21.436 76.192 54.485 76.192 18.56 0 33.701-9.768 44.717-22.141l29.631 36.468c-19.862 23.77-46.02 35.817-76.518 35.817z m187.443 0c-51.338 0-91.062-35.817-91.062-97.031 0-60.238 41.57-97.358 85.038-97.358 51.664 0 76.898 38.748 76.898 89.543 0 10.094-1.302 20.513-2.55 24.746h-105.172c5.047 25.398 22.033 35.817 44.717 35.817 12.916 0 24.855-3.907 37.77-11.722l18.615 34.84c-18.614 13.676-43.144 21.165-64.254 21.165z m-37.825-117.87h61.106c0-18.56-7.869-32.236-28.328-32.236-15.466 0-28.98 10.094-32.778 32.236z m144.57 113.312V750.856h45.695l3.798 32.235h1.249c13.187-24.746 33.103-36.794 51.012-36.794 10.69 0 16.714 1.628 21.707 3.908l-9.443 49.818a70.657 70.657 0 0 0-19.536-2.93c-13.187 0-29.305 8.79-38.694 33.212v105.823h-55.787z m216.694 4.558c-45.043 0-63.277-29.305-63.277-73.262v-71.308h-24.258v-42.98l27.406-2.28 6.295-48.842h46.616v48.842h42.221v45.26h-42.22v70.657c0 20.513 9.442 28.653 22.683 28.653 5.644 0 11.94-1.953 16.39-3.256l8.79 41.678a127.91 127.91 0 0 1-40.646 6.838z m69.626-4.558V750.856h55.734v185.272h-55.734z m28.057-210.995c-18.94 0-32.127-12.374-32.127-29.63 0-17.584 13.187-29.957 32.127-29.957 18.56 0 31.801 12.373 31.801 29.956 0 17.257-13.241 29.63-31.801 29.63z m82.488 26.048v-7.489c0-39.073 17.962-72.285 67.726-72.285 15.738 0 28.328 3.256 36.523 6.512l-10.04 42.655a51.12 51.12 0 0 0-18.288-3.907c-12.265 0-19.862 6.838-19.862 25.397v8.792h31.8v45.26h-31.8v140.012h-56.06V796.116h-23.877v-42.98l23.878-1.955z m149.943-26.048c-18.289 0-31.801-12.374-31.801-29.63 0-17.584 13.567-29.957 31.8-29.957 18.886 0 32.453 12.373 32.453 29.956 0 17.257-13.567 29.63-32.452 29.63z m-28.057 210.995V750.856h56.06v185.272h-56.06z m180.496 4.558c-50.415 0-89.162-35.817-89.162-97.031 0-61.54 44.12-97.358 94.21-97.358 21.707 0 38.747 7.815 52.26 19.862l-26.103 37.12c-8.195-7.163-15.195-10.094-23.01-10.094-24.584 0-39.996 19.537-39.996 50.47 0 30.607 16.064 50.143 38.097 50.143 11.342 0 22.032-5.535 31.204-13.024l21.381 38.096c-17.311 15.955-39.995 21.816-58.88 21.816z m135.454 0c-33.104 0-53.237-25.397-53.237-56.33 0-39.073 29.576-60.238 99.528-68.053-1.248-14.978-8.846-23.77-27.134-23.77-14.11 0-28.925 5.862-46.888 16.281l-19.537-38.096c23.607-14.652 49.113-24.42 77.17-24.42 46.29 0 72.448 26.7 72.448 84.658v105.172h-45.694l-4.07-18.56h-1.248c-14.815 13.676-31.476 23.118-51.338 23.118z m19.211-44.934c11.342 0 18.885-5.535 27.08-14.652v-29.63c-34.949 4.883-46.291 15.303-46.291 28.327 0 10.745 7.543 15.955 19.211 15.955z m196.831 44.934c-45.043 0-63.277-29.305-63.277-73.262v-71.308h-24.258v-42.98l27.406-2.28 6.295-48.842h46.616v48.842h42.167v45.26h-42.167v70.657c0 20.513 9.443 28.653 22.684 28.653 5.644 0 11.94-1.953 16.335-3.256l8.846 41.678a127.91 127.91 0 0 1-40.647 6.838z m69.626-4.558V750.856h55.734v185.272h-55.734z m28.003-210.995c-18.886 0-32.127-12.374-32.127-29.63 0-17.584 13.241-29.957 32.127-29.957 18.614 0 31.855 12.373 31.855 29.956 0 17.257-13.241 29.63-31.855 29.63z m150.865 215.553c-45.64 0-87.86-35.817-87.86-97.031 0-61.54 42.22-97.358 87.915-97.358 45.314 0 87.534 35.817 87.534 97.358 0 61.214-42.22 97.031-87.589 97.031z m0-46.888c20.785 0 30.282-19.536 30.282-50.143 0-30.933-9.497-50.47-30.282-50.47-21.056 0-30.553 19.537-30.553 50.47 0 30.607 9.497 50.143 30.553 50.143z m122.864 42.33V750.856H2826l3.798 23.118h1.194c14.816-14.978 33.104-27.677 57.362-27.677 39.073 0 55.733 28.98 55.733 75.216v114.615h-56.059V828.676c0-25.397-6.62-32.886-20.784-32.886-12.59 0-20.188 5.86-31.205 16.606v123.732h-55.733z’ fill=’%23C2C2C2’ data-evernote-id=’2969’ class=’js-evernote-checked’%3e%3c/path%3e %3c/svg%3e) 版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lovesummerforever/article/details/71526900
       人总是会有犯错的时候,所以我们的代码有时候就需要回滚。

       当我们要回滚的代码还没有提交到远程的时候,可以进行本地回滚,较为简单。

一、  本地回滚 ��   

   

**       git reset**

       回退内容到上一个版本。就像现在的自己为成年人,想要回退到童年,直接用gitreset命令,直接回退到小时候。

       $ git reset –hard   22f8aae 。22f8aae 为某次提交的提交号。

       可以用git命令进行回退,也可以在intellij中可视化界面回退,如下。

20170519104808612.png

       比如我们要回退到第二次提交,可以在提交log界面中,选中第二次提交,右键选择reset current branch to here,如下图所示。

20170628172436695.png

       reset有几种模式,包括Hard 、Mixed、Soft、Keep,区别如下英文说明。

20170519102815942.png

       git reset –hard HEAD~3 (回退3次提交)

       –hard:本地的源码和本地未提交的源码都会回退到某个版本,包括commit内容,和git自己对代码的索引都会回退到某个版本,就如上图所说,any local changes will be lost。

       –soft:保留源码,只能回退到commit信息到某个版本,不涉及到index的回退,如果还需要提交,直接commit即可。比如我选择soft方式来进行回退,我的本地代码和本地新添加的尚未commit的代码都没有改变。

20170519102616252.png

       –mixed:会保留源码,只是将git commit和index信息回退到某个版本。

git revert

       如果错误的修改已经不是最新的commit,回退某次提交的上一步,用git revert。并且会生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留。

       就像是现在的自己是青年人,用git revert是无法退回到小时候,但可以修改小时候某次做过的事情,比如小时候和别人打架,可以直接清除这次打架记忆,但会生成一个最新的记录,会记录下曾经清楚过小时候这段记忆(我的理解是这样的,勿喷)。

       git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61  回退该次提交(提交后的生成的唯一编号c011eb3c20ba6fb38cc94fe5a8dda366a3990c61 )

       以上的两种方式均为本地回滚,均不可以达到远程回滚的效果。要想把远程分支上的代码进行回滚,还需要如下操作。

       当我们的代码已经提交到远程,不但要回滚本地的代码,同时也要回滚远程的代码,如下操作。

二、 远程回滚

**       方法一,先git reset回滚到本地,然后再强制push到远程。**

       1,回滚到本地上述已经说明不再赘述。

       2,强推到远程分支(谨慎操作,胆小勿做,备份预备)

        git push -u origin master -f        origin:远程仓库名  master:分支名称  -f:force,意为强制、强行

       我们是要把本地的修改强制推送到远程分支上,在强推mster的可能会报错,意思是没有权限之类的错误,报错如下。

       remote: GitLab: You don’t have permission

       To git@10.255.223.213:code-ddreader/media-hapi.git

        ! [remote rejected] master (pre-receive hook declined)

       是因为master分支一般会成为保护分支,所以我们首先要去除master为保护分支,才可以强推。

       为分支开启保护

              *管理员可以开启

              * 开启,无法强制推送

              * 开启,无法被删除

              * 只有测试全部通过才被接受合并

       该分支添加了保护权限,需要设置去掉保护权限(http://10.255.223.*/code-dd/media-project/protected_branches)。

20170519103005117.png

       这样操作后就可以把本地强制推送要远程。

**       方法二,先reset回滚到本地,然后再提交到一个新的分支,删除错误的分支(git brach -d master),再把新的分支重命名删除掉的分支。**

       (ps这需要团队的其他人把本地的删除掉,然后重新下载一份,任何一个人未重新下载就可以出问题。)

       默认分支设置,也可能要删除的分支为 默认分支,造成删除默认分支失败。

       默认分支是无法删除的,遇到master远程仓库要回滚就会出问题,我们master是默认的主干,所以不允许删除,要删除的话还要设置一个新的分支为主分支。

       git config –global push.default “current”

       所以第二种方法也不是十分的好。

**       方法三,对于少量的回滚,手动回滚**

       对于少量的回滚,可以手动回滚,实在修改的文件太多,无法具细,再采用前两种方式。

       参考:http://stackoverflow.com/questions/32246503/how-to-fix-you-are-not-allowed-to-push-code-to-protected-branches-on-this-proje

文章目录
  1. 1. git 远程代码回滚master - Xinghf - CSDN博客